/*                          UX-Framework                               
 *                                                                 
 *  iZE Co.,Ltd. Copyright 2009 All rights reserved.          
 *  This file is distributed under the terms of the GNU Lesser 
 *  General Public License, described in file LICENSE.                                     
 */
package jp.ize.ux.components;

// {{{ imports
import jp.ize.ux.UXObject;
import jp.ize.ux.UXScalable;
import jp.ize.ux.UXResource;
import jp.ize.ux.Util;
import jp.ize.ux.UXRange;
import jp.ize.ux.UXController;
import jp.ize.ux.UXInteraction;
import jp.ize.ux.states.UXBasicState;
import jp.ize.ux.acts.Act;
import jp.ize.ux.components.UXComponent;
// }}}
// {{{ class UXProgressBarResource extends UXComponentResource
/**
 * UXProgressBarResource クラス<br>
 * UXProgressBarコンポーネントに利用されるリソース群です。
 */
class UXProgressBarResource extends UXComponentResource
{
	// {{{ public var track( default, default ) : UXScalable;
	/**
	 * プログレスバートラック(バーの背景)のリソースです。
	 */
	public var track( default, default ) : UXScalable;
	// }}}
	// {{{ public var bar( default, default ) : UXScalable;
	/**
	 * 完了した部分を表すバーのリソースです。
	 */
	public var bar( default, default ) : UXScalable;
	// }}}
}
// }}}
// {{{ class UXProgressBarAct extends ActSubject<UXProgressBarState>
/**
 * UXProgressBarAct クラス<br>
 * UXProgressBarのアクションです。
 */
class UXProgressBarAct extends ActSubject<UXProgressBarState>
{
	// {{{ public function progress( s : UXProgressBarState ) : Void
	/**
	 * 進捗状況を画面に反映させるデフォルトアクションです。
	 */
	public function progress( s : UXProgressBarState ) : Void
	{
	}
	// }}}
	// {{{ public function disable( s : UXProgressBarState ) : Void
	/**
	 * 無効にした時のデフォルトアクションです。
	 */
	public function disable( s : UXProgressBarState ) : Void
	{
	}
	// }}}
	// {{{ public function enable( s : UXProgressBarState ) : Void
	/**
	 * 有効にした時のデフォルトアクションです。
	 */
	public function enable( s : UXProgressBarState ) : Void
	{
	}
	// }}}
	// {{{ public function show( s : UXProgressBarState ) : Void
	/**
	 * 表示状態になった時のデフォルトアクションです。
	 */
	public function show( s : UXProgressBarState ) : Void
	{
	}
	// }}}
	// {{{ public function hide( s : UXProgressBarState ) : Void
	/**
	 * 非表示状態になった時のデフォルトアクションです。
	 */
	public function hide( s : UXProgressBarState ) : Void
	{
	}
	// }}}
}
// }}}
// {{{ class UXProgressBarState extends UXBasicState
/**
 * UXProgressBarState クラス<br>
 * UXProgressBarの現在の状態を表すクラスです。
 */
class UXProgressBarState extends UXBasicState
{
	// {{{ public var resource( default, default ) : UXProgressBarResource
	/**
	 * プログレスバーの描画に使用するリソースです。
	 */
	public var resource( default, default ) : UXProgressBarResource;
	// }}}
	// {{{ public var track(default, default) : UXScalable
	/**
	 * プログレスバートラック(バーの背景)です。
	 */
	public var track(default, default) : UXScalable;
	// }}}
	// {{{ public var bar(default, default) : UXScalable
	/**
	 * プログレスバーです。
	 */
	public var bar(default, null) : UXScalable;
	// }}}
	// {{{ public var enabled( default, default ) : Bool;
	/**
	 * コンポーネントが有効かどうかを取得、または設定します。
	 */
	public var enabled( default, default ) : Bool;
	// }}}
	// {{{ public var range( default, default ) : UXRange
	/**
	 * 進捗状況の最大値、最小値です。
	 */
	public var range( default, default ) : UXRange;
	// }}}
	// {{{ public var progress( default, default ) : Float
	/**
	 * 進捗状況です。
	 */
	public var progress( default, default ) : Float;
	// }}}
	// {{{ public var act(default, null) : UXProgressBarAct
	/**
	 * デフォルトの動きです。
	 */
	public var acts(default, null) : UXProgressBarAct;
	// }}}
}
// }}}
// {{{ class UXProgressBar extends UXComponent
/** 
 * UXProgressBar クラス<br>
 * ロード中のコンテンツの進捗状況を表示します。
 * ProgressBar コンポーネントは、プログレスバートラック(バーの背景)と完了したバーによって構成されます。<br>
 *
 * @author		iZE Co., Ltd.<br>
 * @version		$Id: UXProgressBar.hx 20 2009-02-04 08:23:19Z yimai.v $<br>
 */
class UXProgressBar extends UXComponent
{
	// {{{ properties

	private var _state : UXProgressBarState;

	// }}}
	// {{{ public var ctrl : UXController<UXProgressBarState>;
	/**
	 * このコンポーネント内でのインタラクションを管理するコントローラークラスのインスタンスです。
	 */
	public var ctrl : UXController<UXProgressBarState>;
	// }}}
	// {{{ public function new()
	/**
	 * コンストラクタです。
	 */
	public function new()
	{
		super();
	}
	// }}}
	// {{{ private function attachResource() : Void
	/**
	 * グローバルなリソースをresourceプロパティに取得する関数です。
	 */
	private function attachResource() : Void
	{
	}
	// }}}
	// {{{ public function update( updator : UXProgressBarState -> Void ) : Void
	/**
	 * このコンポーネントの状態を直接変更するメソッドです。状態のどんな操作も可能になるので、
	 * このメソッドの使用には注意が必要です。
	 */
	public function update( updator : UXProgressBarState -> Void ) : Void
	{
		updator( _state );
	}
	// }}}
}
// }}}
// {{{ class UXProgressBarInitInteraction extends UXInteraction<UXProgressBarState>
/**
 * UXProgressBarInitInteraction クラス<br>
 * プログレスバーの初期化デフォルトインタラクションです。
 */
class UXProgressBarInitInteraction extends UXInteraction<UXProgressBarState>
{
}
// }}}
// {{{ class UXProgressBarProgressInteraction extends UXInteraction<UXProgressBarState>
/**
 * UXProgressBarProgressInteraction クラス<br>
 * 進捗状況に対応するデフォルトインタラクションです。
 */
class UXProgressBarProgressInteraction extends UXInteraction<UXProgressBarState>
{
}
// }}}
// {{{ class UXProgressBarEnableInteraction extends UXInteraction<UXProgressBarState>
/**
 * UXProgressBarEnableInteraction クラス<br>
 * 有効/無効を切り替えるデフォルトインタラクションです。
 */
class UXProgressBarEnableInteraction extends UXInteraction<UXProgressBarState>
{
}
// }}}
